﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.creditos.be.liclSolcred;

namespace com.creditos.dao.sql.liclSolcred
{
    public class EstrategiasCreditoDAO
    {

        public static List<EstrategiasCreditoBE> ListarEstrategiasCredito(EstrategiasCreditoBE oEstrategia)
        {
            List<EstrategiasCreditoBE> lstEstrategias = new List<EstrategiasCreditoBE>();
            Comando oCmd = new Comando();
            oCmd.CommandName = "PRC_ObtenerListaEstrategia";
            oCmd.AddParameter("@Accion", oEstrategia.Accion);
            oCmd.AddParameter("@CodProducto", oEstrategia.CodigoProducto);
            oCmd.AddParameter("@CodSubProducto", oEstrategia.CodigoSubProducto);
            lstEstrategias = (List<EstrategiasCreditoBE>)ElManager.EjecutarStore<EstrategiasCreditoBE>(oCmd, DataBase.MOTOREGLA_WEB);
            return lstEstrategias;
        }

        public static List<EstrategiasCreditoBE> CargarListaPlantillaPorTipo(int tipoPlantilla)
        {
            List<EstrategiasCreditoBE> lstEstrategias = new List<EstrategiasCreditoBE>();
            Comando oCmd = new Comando();
            oCmd.CommandName = "PRC_ListaPlantillaPorTipo";
            oCmd.AddParameter("@TipoPlantilla", tipoPlantilla);
            lstEstrategias = (List<EstrategiasCreditoBE>)ElManager.EjecutarStore<EstrategiasCreditoBE>(oCmd, DataBase.MOTOREGLA_WEB);
            return lstEstrategias;
        }

        public static List<EstrategiasCreditoBE> ActualizarEstrategia(EstrategiasCreditoBE oEstrategia)
        {
            List<EstrategiasCreditoBE> lstEstrategias = new List<EstrategiasCreditoBE>();
            Comando oCmd = new Comando();
            oCmd.CommandName = "PRC_ActualizarEstrategia";
            oCmd.AddParameter("@Accion", oEstrategia.Accion);
            oCmd.AddParameter("@estCodEstrategia", oEstrategia.CodigoEstrategia);
            oCmd.AddParameter("@estDesEstrategia", oEstrategia.DescripcionEstrategia);
            oCmd.AddParameter("@estCodProducto", oEstrategia.CodigoProducto);
            oCmd.AddParameter("@estCodSubProducto", oEstrategia.CodigoSubProducto);
            oCmd.AddParameter("@estValRangoInicial", oEstrategia.RangoInicial);
            oCmd.AddParameter("@estValRangoFinal", oEstrategia.RangoFinal);
            oCmd.AddParameter("@estCodParametroBasico", oEstrategia.CodigoParametroBasico);
            oCmd.AddParameter("@estFlgParametroBasicoRequiere", oEstrategia.FlagParametroBasicoRequiere);
            oCmd.AddParameter("@estFlgParametroBasicoObligado", oEstrategia.FlagParametroBasicoObligado);
            oCmd.AddParameter("@estCodCentralRiesgo", oEstrategia.CodigoCentralRiesgo);
            oCmd.AddParameter("@estFlgCentralRiesgoRequiere", oEstrategia.FlagCentralRiesgoRequiere);
            oCmd.AddParameter("@estFlgCentralRiesgoObligado", oEstrategia.FlagCentralRiesgoObligado);
            oCmd.AddParameter("@estCodVerificacion", oEstrategia.CodigoVerificacion);
            oCmd.AddParameter("@estFlgVerificacionRequiere", oEstrategia.FlagVerificacionRequiere);
            oCmd.AddParameter("@estFlgVerificacionObligado", oEstrategia.FlagVerificacionObligado);
            oCmd.AddParameter("@estCodPosicionCliente", oEstrategia.CodigoPosicionCliente);
            oCmd.AddParameter("@estFlgPosicionClienteRequiere", oEstrategia.FlagPosicionClienteRequiere);
            oCmd.AddParameter("@estFlgPosicionClienteObligado", oEstrategia.FlagPosicionClienteObligado);
            oCmd.AddParameter("@estCodAutonomia", oEstrategia.CodigoAutonomia);
            oCmd.AddParameter("@estCodScoring", oEstrategia.CodigoScoring);
            oCmd.AddParameter("@estCodLimiteCredito", oEstrategia.CodigoLimiteCredito);
            oCmd.AddParameter("@estCodRelacionCuotaIngreso", oEstrategia.CodigoRelacionCuotaIngreso);
            oCmd.AddParameter("@estCodPosicionSBS", oEstrategia.CodigoPosicionSBS);
            oCmd.AddParameter("@estFlgPosicionSBSRequiere", oEstrategia.FlagPosicionSBSRequiere);
            oCmd.AddParameter("@estFlgPosicionSBSObligado", oEstrategia.FlagPosicionSBSObligadoField);
            oCmd.AddParameter("@estValPlazoMinimo", oEstrategia.ValPlazoMinimo);
            oCmd.AddParameter("@estValPlazoMaximo", oEstrategia.ValPlazoMaximo);
            oCmd.AddParameter("@estValorImporteMinimoSoles", oEstrategia.ValorImporteMinimoSoles);
            oCmd.AddParameter("@estValorImporteMinimoDolar", oEstrategia.ValorImporteMinimoDolar);
            oCmd.AddParameter("@estValorImporteMaximoSoles", oEstrategia.ValorImporteMaximoSoles);
            oCmd.AddParameter("@estValorImporteMaximoDolar", oEstrategia.ValorImporteMaximoDolar);
            oCmd.AddParameter("@estCodUsuarioRegistro", 1);  
          
            lstEstrategias = (List<EstrategiasCreditoBE>)ElManager.EjecutarStore<EstrategiasCreditoBE>(oCmd, DataBase.MOTOREGLA_WEB);
            return lstEstrategias;
        }

        public static List<EstrategiasCreditoBE> ObtenerEstrategia(EstrategiasCreditoBE oEstrategia)
        {
            List<EstrategiasCreditoBE> lstEstrategias = new List<EstrategiasCreditoBE>();
            Comando oCmd = new Comando();
            oCmd.CommandName = "PRC_ObtenerEstrategia";
            oCmd.AddParameter("@Accion", oEstrategia.Accion);
            oCmd.AddParameter("@estCodEstrategia", oEstrategia.CodigoEstrategia);
            lstEstrategias = (List<EstrategiasCreditoBE>)ElManager.EjecutarStore<EstrategiasCreditoBE>(oCmd, DataBase.MOTOREGLA_WEB);
            return lstEstrategias;
        }

    }
}
